home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / program / progem.lzh / apndx3.prf < prev    next >
Text File  |  1987-06-23  |  11KB  |  403 lines

  1. .!****************************************************************************
  2. .! 
  3. .! ANTIC PUBLISHING INC., COPYRIGHT 1985.  REPRINTED BY PERMISSION.
  4. .!
  5. .! ** Professional GEM ** by Tim Oren
  6. .!
  7. .! Proff File by ST enthusiasts at
  8. .! Case Western Reserve University
  9. .! Cleveland, Ohio
  10. .! uucp : decvax!cwruecmp!bammi
  11. .! csnet: bammi@case
  12. .! arpa : bammi%case@csnet-relay
  13. .! compuserve: 71515,155
  14. .!
  15. .!****************************************************************************
  16. .!
  17. .!            Begin Appendix 3
  18. .!
  19. .!***************************************************************************
  20. .!
  21. .!
  22. .AP III Sample Code for Part IV 
  23. /*
  24. >>>>>>>>>>>>>>>>>>>>>>>>>> Sample C output file from RCS <<<<<<<<<<<<<<<<<<<<
  25. */
  26.                     /* (Comments added)    */
  27. BYTE *rs_strings[] = {            /* ASCII data        */
  28. "Title String",    
  29. "Exit",
  30. "Centered Text",
  31. "",
  32. "",
  33. "Butt⑨",
  34. "Tokyo",
  35. "",
  36. "Time: __:__:__",
  37. "999999",
  38. "",
  39. "Time: __:__:__  ",
  40. "999999",
  41. "New York"};
  42.  
  43. WORD IMAG0[] = {                /* Bitmap for G_IMAGE */
  44. 0x7FF, 0xFFFF, 0xFF80, 0xC00, 
  45. 0x0, 0xC0, 0x183F, 0xF03F, 
  46. 0xF060, 0x187F, 0xF860, 0x1860, 
  47. 0x187F, 0xF860, 0x1860, 0x187F, 
  48. 0xF860, 0x1860, 0x187F, 0xF860, 
  49. 0x1860, 0x187F, 0xF860, 0x1860, 
  50. 0x187F, 0xF860, 0x1860, 0x187F, 
  51. 0xF860, 0x1860, 0x187F, 0xF860, 
  52. 0x1860, 0x187F, 0xF860, 0x1860, 
  53. 0x187F, 0xF860, 0x1860, 0x187F, 
  54. 0xF860, 0x1860, 0x183F, 0xF03F, 
  55. 0xF060, 0xC00, 0x0, 0xC0, 
  56. 0x7FF, 0xFFFF, 0xFF80, 0x0, 
  57. 0x0, 0x0, 0x3F30, 0xC787, 
  58. 0x8FE0, 0xC39, 0xCCCC, 0xCC00, 
  59. 0xC36, 0xCFCC, 0xF80, 0xC30, 
  60. 0xCCCD, 0xCC00, 0x3F30, 0xCCC7, 
  61. 0xCFE0, 0x0, 0x0, 0x0};
  62.  
  63. WORD IMAG1[] = {                /* Mask for first icon */
  64. 0x0, 0x0, 0x0, 0x0, 
  65. 0x7FFE, 0x0, 0x1F, 0xFFFF, 
  66. 0xFC00, 0xFF, 0xFFFF, 0xFF00, 
  67. 0x3FF, 0xFFFF, 0xFFC0, 0xFFF, 
  68. 0xFFFF, 0xFFF0, 0x3FFF, 0xFFFF, 
  69. 0xFFFC, 0x7FFF, 0xFFFF, 0xFFFE, 
  70. 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
  71. 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
  72. 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
  73. 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
  74. 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
  75. 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
  76. 0xFFFF, 0xFFFF, 0xFFFF, 0x7FFF, 
  77. 0xFFFF, 0xFFFE, 0x3FFF, 0xFFFF, 
  78. 0xFFFC, 0xFFF, 0xFFFF, 0xFFF0, 
  79. 0x3FF, 0xFFFF, 0xFFC0, 0xFF, 
  80. 0xFFFF, 0xFF00, 0x1F, 0xFFFF, 
  81. 0xF800, 0x0, 0x7FFE, 0x0};
  82.  
  83. WORD IMAG2[] = {                /* Data for first icon */
  84. 0x0, 0x0, 0x0, 0x0, 
  85. 0x3FFC, 0x0, 0xF, 0xC003, 
  86. 0xF000, 0x78, 0x180, 0x1E00, 
  87. 0x180, 0x180, 0x180, 0x603, 
  88. 0x180, 0xC060, 0x1C00, 0x6, 
  89. 0x38, 0x3000, 0x18C, 0xC, 
  90. 0x60C0, 0x198, 0x306, 0x6000, 
  91. 0x1B0, 0x6, 0x4000, 0x1E0, 
  92. 0x2, 0xC000, 0x1C0, 0x3, 
  93. 0xCFC0, 0x180, 0x3F3, 0xC000, 
  94. 0x0, 0x3, 0x4000, 0x0, 
  95. 0x2, 0x6000, 0x0, 0x6, 
  96. 0x60C0, 0x0, 0x306, 0x3000, 
  97. 0x0, 0xC, 0x1C00, 0x0, 
  98. 0x38, 0x603, 0x180, 0xC060, 
  99. 0x180, 0x180, 0x180, 0x78, 
  100. 0x180, 0x1E00, 0xF, 0xC003, 
  101. 0xF000, 0x0, 0x3FFC, 0x0};
  102.  
  103. WORD IMAG3[] = {            /* Mask for second icon */
  104. 0x0, 0x0, 0x0, 0x0, 
  105. 0x7FFE, 0x0, 0x1F, 0xFFFF, 
  106. 0xFC00, 0xFF, 0xFFFF, 0xFF00, 
  107. 0x3FF, 0xFFFF, 0xFFC0, 0xFFF, 
  108. 0xFFFF, 0xFFF0, 0x3FFF, 0xFFFF, 
  109. 0xFFFC, 0x7FFF, 0xFFFF, 0xFFFE, 
  110. 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
  111. 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
  112. 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
  113. 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
  114. 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
  115. 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
  116. 0xFFFF, 0xFFFF, 0xFFFF, 0x7FFF, 
  117. 0xFFFF, 0xFFFE, 0x3FFF, 0xFFFF, 
  118. 0xFFFC, 0xFFF, 0xFFFF, 0xFFF0, 
  119. 0x3FF, 0xFFFF, 0xFFC0, 0xFF, 
  120. 0xFFFF, 0xFF00, 0x1F, 0xFFFF, 
  121. 0xF800, 0x0, 0x7FFE, 0x0};
  122.  
  123. WORD IMAG4[] = {            /* Data for second icon */
  124. 0x0, 0x0, 0x0, 0x0, 
  125. 0x3FFC, 0x0, 0xF, 0xC003, 
  126. 0xF000, 0x78, 0x180, 0x1E00, 
  127. 0x180, 0x180, 0x180, 0x603, 
  128. 0x180, 0xC060, 0x1C00, 0x6, 
  129. 0x38, 0x3000, 0x18C, 0xC, 
  130. 0x60C0, 0x198, 0x306, 0x6000, 
  131. 0x1B0, 0x6, 0x4000, 0x1E0, 
  132. 0x2, 0xC000, 0x1C0, 0x3, 
  133. 0xCFC0, 0x180, 0x3F3, 0xC000, 
  134. 0x0, 0x3, 0x4000, 0x0, 
  135. 0x2, 0x6000, 0x0, 0x6, 
  136. 0x60C0, 0x0, 0x306, 0x3000, 
  137. 0x0, 0xC, 0x1C00, 0x0, 
  138. 0x38, 0x603, 0x180, 0xC060, 
  139. 0x180, 0x180, 0x180, 0x78, 
  140. 0x180, 0x1E00, 0xF, 0xC003, 
  141. 0xF000, 0x0, 0x3FFC, 0x0};
  142.  
  143. LONG rs_frstr[] = {            /* Free string index - unused */
  144. 0};
  145.  
  146. BITBLK rs_bitblk[] = {            /* First entry is index to image data */
  147. 0L, 6, 24, 0, 0, 0};
  148.  
  149. LONG rs_frimg[] = {            /* Free image index - unused */
  150. 0};
  151.  
  152. ICONBLK rs_iconblk[] = {        
  153. 1L, 2L, 10L, 4096,0,0, 0,0,48,24, 9,24,30,8,    /* First pointer is mask */
  154. 3L, 4L, 17L, 4864,0,0, 0,0,48,24, 0,24,48,8};    /* Second is data, third */
  155.                         /* is to title string     */
  156. TEDINFO rs_tedinfo[] = {
  157. 2L, 3L, 4L, 3, 6, 2, 0x1180, 0x0, -1, 14,1,    /* First pointer is text */
  158. 7L, 8L, 9L, 3, 6, 2, 0x2072, 0x0, -3, 11,1,    /* Second is template     */
  159. 11L, 12L, 13L, 3, 6, 0, 0x1180, 0x0, -1, 1,15,    /* Third is validation     */
  160. 14L, 15L, 16L, 3, 6, 1, 0x1173, 0x0, 0, 1,17};
  161.  
  162. OBJECT rs_object[] = {
  163. -1, 1, 3, G_BOX, NONE, OUTLINED, 0x21100L, 0,0, 18,12,    /* Pointers are to: */
  164. 2, -1, -1, G_STRING, NONE, NORMAL, 0x0L, 3,1, 12,1,    /* rs_strings    */
  165. 3, -1, -1, G_BUTTON, 0x7, NORMAL, 0x1L, 5,9, 8,1,    /* rs_strings    */
  166. 0, 4, 4, G_BOX, NONE, NORMAL, 0xFF1172L, 3,3, 12,5,
  167. 3, -1, -1, G_IMAGE, LASTOB, NORMAL, 0x0L, 3,1, 6,3,    /* rs_bitblk    */
  168. -1, 1, 6, G_BOX, NONE, OUTLINED, 0x21100L, 0,0, 23,12,    
  169. 2, -1, -1, G_TEXT, NONE, NORMAL, 0x0L, 0,1, 23,1,    /* rs_tedinfo    */
  170. 6, 3, 5, G_IBOX, NONE, NORMAL, 0x1100L, 6,3, 11,5,
  171. 4, -1, -1, G_BUTTON, 0x11, NORMAL, 0x5L, 0,0, 11,1,    /* rs_strings    */
  172. 5, -1, -1, G_BUTTON, 0x11, NORMAL, 0x6L, 0,2, 11,1,    /* rs_strings    */
  173. 2, -1, -1, G_BOXCHAR, 0x11, NORMAL, 0x43FF1400L, 0,4, 11,1,
  174. 0, -1, -1, G_BOXTEXT, 0x27, NORMAL, 0x1L, 5,9, 13,1,    /* rs_tedinfo    */
  175. -1, 1, 3, G_BOX, NONE, OUTLINED, 0x21100L, 0,0, 32,11,
  176. 2, -1, -1, G_ICON, NONE, NORMAL, 0x0L, 4,1, 6,4,    /* rs_iconblk    */
  177. 3, -1, -1, G_FTEXT, EDITABLE, NORMAL, 0x2L, 12,2, 14,1,    /* rs_tedinfo    */
  178. 0, 4, 4, G_FBOXTEXT, 0xE, NORMAL, 0x3L, 3,5, 25,4,    /* rs_tedinfo    */
  179. 3, -1, -1, G_ICON, LASTOB, NORMAL, 0x1L, 1,0, 6,4};    /* rs_iconblk    */
  180.  
  181. LONG rs_trindex[] = {            /* Points to start of trees in */
  182. 0L,                    /* rs_object               */
  183. 5L,
  184. 12L};
  185.  
  186. struct foobar {                /* Temporary structure used by    */
  187.     WORD    dummy;            /* RSCREATE when setting up image */
  188.     WORD    *image;            /* pointers.              */
  189.     } rs_imdope[] = {
  190. 0, &IMAG0[0],
  191. 0, &IMAG1[0],
  192. 0, &IMAG2[0],
  193. 0, &IMAG3[0],
  194. 0, &IMAG4[0]};
  195.                     /* Counts of structures defined */
  196. #define NUM_STRINGS 18
  197. #define NUM_FRSTR 0
  198. #define NUM_IMAGES 5
  199. #define NUM_BB 1
  200. #define NUM_FRIMG 0
  201. #define NUM_IB 2
  202. #define NUM_TI 4
  203. #define NUM_OBS 17
  204. #define NUM_TREE 3
  205.  
  206. BYTE pname[] = "DEMO.RSC";
  207. .bp
  208. /*
  209. >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Title change utility <<<<<<<<<<<<<<<<<<<<<
  210. */
  211.     VOID
  212. set_text(tree, obj, str)
  213.     LONG    tree, str;
  214.     WORD    obj;
  215.     {
  216.     LONG    obspec;
  217.  
  218.     obspec = LLGET(OB_SPEC(obj));        /* Get TEDINFO address  */
  219.     LLSET(TE_PTEXT(obspec), str);        /* Set new text pointer */
  220.     LWSET(TE_TXTLEN(obspec), LSTRLEN(str)); /* Set new length    */
  221.     }
  222. .bp
  223. /*
  224. >>>>>>>>>>>>>>>>>>>>>> Text edit code segment <<<<<<<<<<<<<<<<<<<<<<<<<<
  225. */
  226.     LONG    tree, obspec;
  227.     BYTE    text[41];
  228.  
  229.     rsrc_gaddr(R_TREE, DIALOG, &tree);    /* Get tree address  */
  230.     obspec = LLGET(OB_SPEC(EDITOBJ));    /* Get TEDINFO address  */
  231.     LLSET(TE_PTEXT(obspec), ADDR(str));    /* Set new text pointer */
  232.     LWSET(TE_TXTLEN(obspec), 41);         /* Set max length    */
  233.     text[0] = '\0';                /* Make empty string */
  234. .bp
  235. /*
  236. >>>>>>>>>>>>>>>>>>>> Sample 68K only source code <<<<<<<<<<<<<<<<<<<<<<
  237. */
  238.     VOID
  239. set_text(tree, obj, str)
  240.     OBJECT    *tree;
  241.     WORD    obj;
  242.     BYTE    *str;
  243.     {
  244.     TEDINFO    *obspec;
  245.  
  246.     obspec = (TEDINFO *) (tree + obj)->ob_spec;
  247.                         /* Get TEDINFO address  */
  248.     obspec->te_ptext = str;            /* Set new text pointer */
  249.     obspec->te_txtlen = strlen(str);    /* Set new length    */
  250.     }
  251. .bp
  252. /*
  253. >>>>>>>>>>>>>>>>>>>>>>>>>>>> Symbol definitions <<<<<<<<<<<<<<<<<<<<<<<<<
  254. */
  255.                         /* Window parts */
  256. #define NAME 0x0001
  257. #define CLOSER 0x0002
  258. #define FULLER 0x0004
  259. #define MOVER 0x0008
  260. #define INFO 0x0010
  261. #define SIZER 0x0020
  262. #define UPARROW 0x0040
  263. #define DNARROW 0x0080
  264. #define VSLIDE 0x0100
  265. #define LFARROW 0x0200
  266. #define RTARROW 0x0400
  267. #define HSLIDE 0x0800
  268.  
  269. #define WF_KIND 1                /* wind_get/set parameters */
  270. #define WF_NAME 2
  271. #define WF_INFO 3
  272. #define WF_WXYWH 4
  273. #define WF_CXYWH 5
  274. #define WF_PXYWH 6
  275. #define WF_FXYWH 7
  276. #define WF_HSLIDE 8
  277. #define WF_VSLIDE 9
  278. #define WF_TOP 10
  279. #define WF_FIRSTXYWH 11
  280. #define WF_NEXTXYWH 12
  281. #define WF_NEWDESK 14
  282. #define WF_HSLSIZ 15
  283. #define WF_VSLSIZ 16
  284.                         /* window messages    */
  285. #define WM_REDRAW 20
  286. #define WM_TOPPED 21
  287. #define WM_CLOSED 22
  288. #define WM_FULLED 23
  289. #define WM_ARROWED 24
  290. #define WM